如何用一行代码显示当前的时间呢?
环境:
系统:Windows 10(64位)
编程语言:Java
jdk版本:1.8.0_171
软件:Intellij IDEA
类:Date
SimpleDateFormat
包:java.util.Date
java.text.SimpleDateFormat
老方法显示时间
用老方法显示当前时间的方式如下:1
2
3
4Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(date);
System.out.println(str);
- 使用Date类来获取当前时间的时间戳
- 使用SimpleDateFormat类规范时间样式为:”yyyy-MM-dd HH:mm:ss”
- 利用format方法规范时间格式
- 输出当前时间
输出结果:1
2018-07-01 15:33:10
一行代码显示当前时间
以上的代码可以进行整理,让其成为一句话就可以输出带有格式的当前时间。
实现代码如下:1
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date().getTime())
输出结果:1
2018-07-01 15:34:23
这句话其实就是剔除赋值部分,使其连接在一起输出当前时间,其中样式部分可以更改为想要的效果,不必与我相同。
适用范围与补充
- 适用范围
1.需求只涉及输出当前时间的情况
1 | System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date().getTime())); //控制台输出当前时间:2018-07-01 15:34:23 |
在程序中只需要输出当前时间,在任何位置都可以用这句话来显示
2.在代码量多的情况下可以起到精简代码的作用
代码见文中新旧代码
3.设置为全局变量或者静态方法,方便取值1
2
3
4
5
6
7
8
9
10
11class All_get {
static String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date().getTime()); //获取当前时间
public static void main(String[] args){
System.out.println(date); //main函数在控制台打印出本类的静态全局变量date
}
}
class All_getnew{
public static void main(String[] args){
System.out.println(all_get.date); //main函数在控制台打印出all_get类的静态全局变量date
}
}
- 在All_get类中创建静态全局变量date在控制台打印当前时间
- 在All_getnew类中通过All_get类中创建的静态全局变量date在控制台打印当前时间
- 通过这种方式,只要想获取当前时间,只要通过类名.静态属性名(All_get.date)就可以获取当前时间
- 这种方式可以扩展到集合中的赋值,数据库中添加系统当前时间,界面上的时间显示等等
- 这样写,静态变量在类的初始化过程中会被赋值,值将不会改变,要注意。
- 实际运用时,可以采用下面的代码:
1 | static class All_get { |
运行结果:
1 | 2018-07-02 23:53:28 |
用这样的方式就可以取到最新的当前时间了,对于静态的使用,可以看情况而定,我在这里为了方便演示,所以使用了静态属性修饰。
- 补充
这种精简的语句有两种写法:
1 | System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date().getTime())); //控制台输出当前时间:2018-07-01 15:34:23 |
输出结果:1
22018-07-01 15:34:45
2018-07-01 15:34:45
不难看出,这两句的区别在于后面的new Date().getTime()与new Date()处,这两种输出结果相同,写法不同。
我个人偏向于前者,原因是,加上了.getTime()更易于理解与查找,当然这是我个人喜好,其实两者皆可。